Programmable light timer and a method of implementing a programmable light timer

ABSTRACT

A programmable light timer for implementing a timing pattern is described. The programmable light timer comprises a display, wherein a time selected on a user interface is provided on the display; a first programmable button of the plurality of programmable buttons on the user interface; and up and down keys on the user interface, wherein the up and down keys enable selecting an on time of the timing pattern to be implemented when the first programmable button is selected to be used during operation of the programmable light timer. A method of implementing a timing pattern on a programmable light timer is also described.

FIELD OF THE INVENTION

The present invention relates generally to lighting control products, and in particular, to a programmable light timer and a method of implementing a programmable light timer. Applicant claims priority on co-pending U.S. application Ser. No. 14/066,724, filed on Oct. 30, 2013.

BACKGROUND OF THE INVENTION

Conventional timers for lights, such as timers for indoor lamps or outdoor lights for example, either provide little functionality, or are difficult to program. Because of the limited size of the conventional timers, the size of the screen and the size of the interface for programming the timer are both relatively small. This is particularly true of an in-wall timer, which must fit in an electrical box, commonly called a junction box. Not only does a user of the in-wall timer have to read a very small display, but the user has to advance through a menu shown on the small display using a very limited interface which is provided on the remaining portion of the timer. Entering data on such a user interface is particularly difficult because the in-wall timer is fixed and generally positioned well below eye level.

Further, conventional timers are often unreliable. For example, conventional mechanical timers often malfunction over time, leaving the user without the use of the timer for some period of time and requiring the user to incur the expense of replacing the timer. Moreover, advanced digital timers having electronic displays may be difficult to operate, providing a barrier to certain groups of people who would otherwise use a timer, but don't want to struggle through a complex interface on the small screen of the timer to properly set the timer. For example, not only is the display very small and difficult to read, but the user interface is difficult to navigate on such a small display. These groups of users are either left with no timing operation for their lights, or timers which do not provide the timing operation that they desire. Without an effective timer for a light for example, the light may be on significantly longer than necessary, not only wasting energy but in many cases increasing pollution as a result. As energy consumption world-wide continues to increase, it is important to reduce or minimize the consumption of energy in any way possible. The timer of the present invention provides significant benefits in reducing energy consumption.

SUMMARY OF THE INVENTION

A programmable light timer for implementing a timing pattern is described. The programmable light timer comprises a display, wherein a time selected on a user interface is provided on the display; a first programmable button of the plurality of programmable buttons on the user interface; and up and down keys on the user interface, wherein the up and down keys enable selecting an on time of the timing pattern to be implemented when the first programmable button is selected to be used during operation of the programmable light timer.

According to another implementation, a programmable light timer for implementing a timing pattern comprises a display; a plurality of user-selectable buttons on a user interface, wherein each user-selectable button is associated with a timing pattern; a first user-selectable button of the plurality of user-selectable buttons on the user interface of the programmable light timer, wherein the first user-selectable button is a pre-set button having a predetermined timing pattern; and a second user-selectable button on the user interface, wherein the second user-selectable button is programmable by a user of the programmable light timer.

A method for implementing a timing pattern programmable light timer is also described. The method comprises displaying a time, selected by way of a user interface, on a display; implementing a plurality of buttons on the user interface, wherein each button has a timing pattern; implementing a first button of the plurality of buttons on the user interface, wherein the first button is pre-set button having a predetermined timing pattern; and implementing a second button on the user interface, wherein the second button is programmable by way of the user interface to have a programmable on time.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a front panel of an in-wall light timer according to an embodiment of the present invention;

FIG. 2 is a perspective view of the front panel of the in-wall light timer of FIG. 1 with a cover open according to an embodiment of the present invention;

FIG. 3 is a perspective view of a front panel of an in-wall light timer having a display according to another embodiment of the present invention;

FIG. 4 is a perspective view of the front panel of the in-wall light timer of FIG. 3 with a cover open according to an embodiment of the present invention;

FIG. 5 is a perspective view of the front panel of the in-wall light timer of FIG. 3 with a cover open according to another embodiment of the present invention;

FIG. 6 is a perspective view of the front panel of the in-wall light timer of FIG. 3 having preset buttons according to an embodiment of the present invention;

FIG. 7 is a perspective view of the front panel of the in-wall light timer of FIG. 3 having preset buttons according to another embodiment of the present invention;

FIG. 8 is a side view of the in-wall timer enable a connection of the timer to electrical wiring;

FIG. 9 is a side view of a timer having a front panel according to FIGS. 1-7 and adapted to be implemented with a wall outlet according to an embodiment of the present invention;

FIG. 10 is a block diagram of a circuit enabling the operation of the embodiments of FIGS. 1-9 according to an embodiment of the present invention;

FIG. 11 is a block diagram of the a circuit enabling the operation of the embodiments of FIGS. 1-9 having a wireless communication circuit according to an embodiment of the present invention;

FIG. 12 is a block diagram of an exemplary wireless communication circuit enabling the operation of the circuit of FIG. 11 according to an embodiment of the present invention;

FIG. 13 is a segmented map showing geographic regions of operation for a timer according to an embodiment of the present invention;

FIG. 14 is a diagram showing data fields of data entered by a user according to an embodiment of the present invention;

FIG. 15 is a diagram showing data fields of data entered by a user according to an alternate embodiment of the present invention;

FIG. 16 is table showing timing pattern codes and associated timing characterization data and categories according to an embodiment of the present invention;

FIG. 17 is a table showing the designation of regions associated with a number of geographical locations according to an embodiment of the present invention;

FIG. 18 is a table showing average dusk and dawn times for various regions and periods according to an embodiment of the present invention;

FIG. 19 is a table showing daylight savings time codes and associated daylight savings time characterization data according to an embodiment of the present invention;

FIG. 20 is a flow diagram showing the operation of the 5-key user interface of FIGS. 5 and 7 according to an embodiment of the present invention;

FIGS. 21-43 shows a series of stages of programming a timer using the 5-key user interface of FIGS. 5 and 7;

FIG. 44 is a memory showing fields and stored data associated with the programmed timer of FIG. 43;

FIGS. 45-49 show screens of a user interface enabling the wireless programming of a timer according to an embodiment of the present invention;

FIG. 50 is a chart showing dusk and dawn times over a year;

FIG. 51 is a chart showing dusk and dawn times over a year and which is divided into two periods including standard time and daylight savings time;

FIG. 52 is a chart showing dusk and dawn times over a year and which is divided into four periods including four seasons;

FIG. 53 is a flow chart showing a method of generating timing characterization data according to an embodiment of the present invention;

FIG. 54 is a flow chart showing a method of implementing a timer with a plurality of timing patterns according to an embodiment of the present invention;

FIG. 55 is a flow chart showing a method of selecting a stored timing pattern using the keypad of FIGS. 2 and 4 according to an embodiment of the present invention; and

FIG. 56 is a flow chart showing a method of selecting a stored timing pattern using 5 key user interface of FIGS. 5 and 7 according to an embodiment of the present invention.

DETAILED DESCRIPTION OF THE DRAWINGS

The various embodiments set forth below overcome significant problems with conventional timers of having to use a small display, and navigating a menu on such a small display. Some embodiments eliminate the requirement of having a display by providing pre-programmed timing patterns which can be easily selected by entering a timing pattern code associated with a desired timing pattern. Other embodiments include a display, but benefit from an improved user interface which enables the easy selection of a timing pattern by selecting a desired timing pattern code. In addition to selecting the timing pattern code, the user interfaces for embodiments with or without a display enabling the easy programming of other data which must be entered to operate the timer. By storing the timing patterns which are associated with common or desirable on/off patterns which are likely to be used to operate the timer, a user does not need to enter on/off times for a light for various times during a day or week, or reprogram the timer in response to changes in dusk and dawn times during a calendar year.

Turning first to FIG. 1, a perspective view of a front panel of an in-wall light timer according to an embodiment of the present invention is shown. The timer of FIG. 1 comprises a housing portion 102 having an optional cover 104 (coupled to the timer by way of a hinge 106) which covers a user interface when in the closed position and enables programming the timer by way of the user interface in the open position. A feedback indicator 108, such as a light and more particularly a light emitting diode (LED), could be implemented to show the status of the light or other appliance attached to the timer, for example. The feedback indicator could show green when a light attached to the timer is on, and could be or (or show red) when the light is off. An optional switch 109 which is movable between an on or off position, and a timer position for implementing the timer according to a selected timing pattern. While the cover is primarily cosmetic and may generally prevent unintentional changing of the timer, the timer cover is not necessary. Alternatively, the cover may be functional, such as functioning as an on/off override switch for the light or appliance attached to the timer in place of the switch 109. For example, the state of the light may be toggled (i.e. changed from a current state, such as on, to the other state, such as off) in response to pressing the cover which would activate a switch to change the state of the light if the switch 110 is not included. Flanges 111 and 112, each having a threaded portion for receiving a screw to attach the timer to a junction box. While the various embodiments are generally described in reference to a timer which is “hard wired” in a junction and may be used for a porch light for example, it should be understood that the user interfaces, circuits and methods set forth in more detail below could be implemented in a timer which is plugged into an outlet (commonly called an light or appliance timer), as will be described in more detail below in reference to FIG. 9. Further, while some examples are provided in terms of residential-type in-wall timers which are installed in a conventional residential junction box, it should be understood that the user interfaces, circuits and methods could be implemented in commercial timers.

Turning now to FIG. 2, a perspective view of the front panel of the in-wall light timer of FIG. 1 with a cover open according to an embodiment of the present invention is shown. As shown in FIG. 2, when the cover 104 is moved to an open position, a user interface comprising a keypad 204 is accessible on an inner surface 202. Also shown on an inner surface 206 of the cover, instructions can be printed to enable the user to easily program the timer. As will be described in more detail below, a user can program the timer in 5 simple steps (and change a timing pattern using a single step). The keypad 204 of FIG. 2 comprises 0-9 keys and star (*) and pound (#) keys.

According to one embodiment, the timer could be programmed using 5 steps for entering data on the keypad as shown on the inside of the cover. The keypad is used to enter numeric data which is necessary to operate the timer. A key pattern sequence is entered to clear the timer if necessary. For example, the star key could be pressed 3 times to clear the memory. Data necessary to operate the timer according to a user's desired timing pattern is then entered. In particular, a current time is entered followed by the pound key. The pound key may be entered to indicate that all of the data for a given field. Alternatively, all of the data could be considered to be entered after a time-out period. The time is preferably entered as military time (e.g. 2:00 PM would be entered as 1400) to ensure that the correct AM or PM time is stored. Alternatively, a code at the end of the time could be entered to indicate AM or PM. A date is then entered, followed by the pound key. The date is preferably entered as a 6 digit code (e.g. in the DDMMYY format) to ensure that the date is properly interpreted. A location code (such as a zip code) could then be entered followed by the pound key. As will be described in more detail below, the location code can be associated with a region which is used to ensure that the correct daylight savings times and dawn and dusk times (or average values associated with dawn and dusk times) are used to operate the timer. The timing pattern is then entered followed by the pound key. The timing pattern will be used to operate the timer based upon the current time, date and location of the timer. Accordingly, after 5 simple steps, the timer is programmed to follow a timing pattern that meets the user's needs, and operates as it would if on/of times were entered on a user interface in a conventional manner to implement the timing pattern.

In addition to providing simple steps to program the timer, the user interface of FIG. 2 also enables easy reprogramming if desired by the user. Although the selection of a desired timing pattern will eliminate the need to reprogram the timer (such as at the start of spring or fall seasons as is generally required with conventional timers), the user interface enables easy reprogramming is a user decides that they simply want to change the timing pattern. That is, rather than having to clear all of the data and re-enter the current time, date and a zip code, a key sequence could be entered followed by the pound key to change the timing pattern. For example, a user could enter a sequence of three # keys followed by the new timing pattern, followed by the # key. While the use of pre-stored timing patterns which can easily be selected using a timing pattern code, it may be the case that the user may realize that they do not like the pattern that they selected, and decide that they simply want to change the timing pattern that they selected. Alternatively, a user may decide that they want to periodically reprogram the timer. That is, although the use of pre-stored patterns eliminates the need for reprogramming, reprogramming the timer to implement another pre-stored timer is so easy that it is an option for a user of timer implementing the pre-stored timing pattern.

Turning now to FIG. 3, a perspective view of a front panel of an in-wall light timer having a display according to another embodiment of the present invention is shown. According to the embodiment of FIG. 3, a display 302 could be implemented. While a display may not be necessary to implement the timer with pre-stored timing patterns, the display may be desirable to provide information regarding stored data, including a selected timing pattern for example. That is, even though a display is not necessary in view of the use of pre-stored timing patterns, a user may desire a display for aesthetic reasons, because they are simply used to having a display, or for what information it does provide. As shown in FIG. 3, the display includes a time field 304 which displays the current time during normal operation, an AM/PM field 306, an on/off field 308 indicating the state of a light or appliance which is attached to the timer. Finally, an information field 310 includes other information related to the operation of the timer. For example, the information field could include the current date and the timing pattern number. The timing field could include other information, such as DST code or whether a security code is used, as will be described in more detail below. Based upon the current time, date and security code information, a user could determine whether the timer is set with the correct data and should be operating correctly. As shown in FIG. 4 which shows the embodiment of FIG. 3 with the cover in the open position, the user interface could be implemented in with the user interface.

Turning now to FIG. 5, a perspective view of the front panel of the in-wall light timer of FIG. 3 with a cover open according to another embodiment of the present invention is shown. According to the embodiment of FIG. 5, a 5-key user interface could be implemented to enter data necessary for implementing a timer using a pre-stored timing pattern. As will be described in more detail below in reference to FIG. 20, the left and right keys on either side of a select key will allow a user to traverse through programming categories, while the up and down keys above and below the select key will enable a user to move through the available options in a given programming category. As will be further described below, the 5-key user interface will be enable a user to select a timing pattern code so that the timer can be implemented with a pre-stored timing pattern.

Turning now to FIG. 6, a perspective view of the front panel of the in-wall light timer of FIG. 3 having pre-set buttons according to an embodiment of the present invention is shown. As shown in FIG. 6, dedicated, pre-set actuators 602, shown here as buttons 604 which enable the manual selection of a pre-stored timing pattern. Four pre-set buttons are shown in the embodiment of FIG. 6, including a fixed button (applying a fixed on time and fixed off time when selected), an astronomic button enabling the operation of the timer based upon astronomic data, a DST button enabling the operation of the timer based upon a first timing pattern for a standard time period and a second timing pattern for a daylight savings time period, and a seasonal button for applying different timing patterns for each of the four seasons. Each of the buttons includes a selection indicator (such as an LED light for example) which would indicate when the button is selected. The button could be movable between a depressed, on position (where it is flush with the surface of the timer and the LED lit) and an off position. Alternatively, the selected button would have the LED lit, with all buttons having the same positioning. Only a single button can be selected at a time, where a selected button would be deactivated if another button is selected. The selection of timing patterns for the pre-set actuators 602 will be described in more detail below. While 4 buttons are shown, it should be understood that a greater number of buttons or fewer buttons could be implemented. Further, while examples of the functions of buttons are shown, it could be understood that other functions for the pre-set buttons could be implemented. For example, one button could be dedicated to each season. As will also be described in more detail below, a wireless option would enable the wireless programming of timing patterns for the pre-set buttons.

Turning now to FIG. 7, a perspective view of the front panel of the in-wall light timer of FIG. 5 according to another embodiment of the present invention is shown. In addition to having pre-set buttons as shown in FIG. 6, a connector 702 for receiving a portable memory device is provided for downloading data, such as new or different timing patterns or DST data, as will be described in more detail below. While the connector for receiving a portable memory is only shown in connection with FIG. 7, it should be understood that such a connector could be implemented in any of the embodiments of FIGS. 1-6.

While user interfaces are provided in the embodiment of FIGS. 6 and 7 for entering data in addition to the dedicated buttons for selecting a predetermined timing pattern, it should be understood that the embodiments of FIGS. 6 and 7 could be implemented without the user interface for entering data or a display, where the only actuators which would be required for selecting a timing pattern would be the dedicated buttons of FIGS. 6 and 7 for selecting pre-stored timing pattern or a timing pattern based upon data selected for the buttons and provided to the timer. That is, the timing patterns of the dedicated buttons could be assigned defined, pre-stored timing patterns, could be downloaded using a portable memory by way of the connector 702, or could be programmed by a user, as will be described in more detail below in reference to FIGS. 46-49. That is, embodiments of the timer could be implemented with the pre-set buttons 602, and not having a keypad 204 or a 5-key interface 312.

Turning now to FIG. 8, a side view of the in-wall timer shows connectors enabling a connection of the timer to electrical wiring. The side view of the timer shows a connector panel 802 having coupling elements 804-808, shown here as screws, for receiving wires of a junction box. Alternatively wires could extend from the timer and be connected to wires of the junction box.

Turning now to FIG. 9, a side view of a timer having a front panel according to FIGS. 1-7 and adapted to be implemented with a wall outlet according to an embodiment of the present invention is shown. Rather than a timer which is fixedly coupled to a junction box, the various circuits and methods can be implemented in a timer adapted to be used with a wall outlet and adapted to receive a plug of a light or some other appliance. As shown in FIG. 9, the timer 902 comprises a receptacle 904 for receiving the prongs of a plug of a light or an appliance. The timer 902 also comprises prongs 906 to be inserted to an outlet to enable applying power to the light or appliance. The user interface 202, shown opposite of the prongs 906, can be implemented according to any of the user interfaces set forth above.

Turning now to FIG. 10, a block diagram of a circuit enabling the operation of the embodiments of FIGS. 1-9 according to a first embodiment of the present invention is shown. As shown in FIG. 10, a circuit for implementing a timer having pre-stored timing patterns comprises a control circuit 1002 adapted to access one or more of a plurality of pre-stored timing patterns. The control circuit 1002 may be a processor having a cache memory 1004 storing timing patterns and other data necessary to implement the timer. A memory 1006 may also be implemented to store timing patterns or other data necessary to implement the timer. The memory 1006 may be implemented as a non-volatile memory, enabling the memory to store the timing patterns and data without loss due to a power loss. A portable memory 1008, having contacts 1010, may be received by a connector 1012 (such as the connector 702 of FIG. 7 for example) and coupled to corresponding contacts. A transformer 1014 is coupled to receive an input voltage at an input 1016, and provide a regulator voltage signal 1018 to various elements of the timers. A second input 1020 is coupled to a ground terminal enabling a ground signal which is coupled various elements of the timer. A backup energy supply 1022, which could be a battery or a capacitor for example, could be implemented to ensure that data of a memory is not lost during a loss of power. The control circuit provides a control signal by way of signal line 1024 to a switch 1028 which receives a regulated voltage by way of a line 1026. The switch 1026 controls the application of the regulated voltage to a voltage terminal 1030 which enables power to be applied to an appliance 1032, such as a light as shown. The appliance has a first terminal 1032 for receiving the regulated voltage from the voltage terminal 1030 and a second terminal 1036 coupled to the ground potential. An input portion 1038, which may be implement any of the user interface elements described in reference to FIGS. 1-7 is also shown.

Turning now to FIG. 11, a block diagram of the a circuit enabling the operation of the embodiments of FIGS. 1-9 having a wireless communication circuit according to an embodiment of the present invention is shown. As shown in FIG. 11 comprises a wireless communication circuit 1102 which is adapted to enable the wireless programming of certain data or information by way of a corresponding wireless communication circuit implemented in a computer device, such as a laptop computer, a tablet computer or a “smart phone.” An example of a wireless communication circuit is shown by way of example in FIG. 12.

Turning now to FIG. 12, a block diagram of an exemplary wireless communication circuit enabling the operation of the circuit of FIG. 11 according to an embodiment of the present invention is shown. In particular, the antenna 1104 receives wireless communication signals according to a predetermined wireless communication protocol. The data may be sent to the wireless transceiver 1102 by way of a computer having or in communication with a corresponding wireless transceiver 1102. The received data is coupled to a combined mixer/voltage controlled oscillator 1206, the output of which is coupled to an intermediate frequency (IF) circuit 1208. Based upon outputs of the IF circuit and a phase locked loop (PLL) 1210, a mixer 1212 generates the received data. An analog-to-digital converter (ADC) 1214 then generates digital data representing the timing characterization data.

The control circuit may also provide data to the data transceiver for transmission to the computer. Data to be transmitted from the data transceiver 1102 is coupled to a digital-to-analog converter (DAC) 1216, the output of which is coupled to a modulator 1218 which is also coupled to a PLL 1220. A power amplifier receives the output of the modulator to drive the antenna 1104 and transmit the data. It should be noted that the wireless communication network could be configured to implement any wireless protocol for communicating with the wireless communication circuit of the timer of FIG. 11. According to one embodiment, the data transceiver could implement the IEEE Specification 802.11 wireless communication standard, the Bluetooth standard, an infrared protocol, or any other wireless data protocol. While the circuit of FIG. 12 is provided by way of example, other wireless data transceivers could be employed according to the present invention to implement the desired wireless communication standard.

Turning now to FIG. 13, a segmented map showing geographic regions of operation for a timer according to an embodiment of the present invention is shown. The geographic regions enable applying certain data, such a timing pattern, which is suitable for a timer implemented in the geographic area. As shown in FIG. 13, the geographic area of the continental US is divided into 12 regions identified by a longitudinal designation (shown here as the time zones) or latitudinal designation (shown here as 3 regions designated as north, central and south). According to the embodiment of FIG. 13, the regions are designated by a two letter code including the first letter of the longitudinal code followed by the first letter of the latitudinal code, by way of example. While 12 regions are shown by way of example, it should be understood that a greater number or fewer number of regions could be designated. Further, while geographic regions, other designation of regions could be implemented, such as zip codes or telephone area codes.

Turning now to FIGS. 14 and 15, diagrams data fields of data entered by a user according to embodiments of the present invention, including data as entered on a keypad as described in reference to FIG. 2. According to the embodiment of FIG. 14, a field 1402 stores the received “clear” code, shown here as three star keys, a time code 1404 (shown here as a 4 digit time entered in military format representing 2:30 PM), a date code 1406 (shown here as a 6 digit date in the DDMMYY format), a location code 1408 (shown here as a zip code), and a timing pattern code 1410 (which will be described in more detail below). While the location is shown as a zip code, other location codes representing larger or smaller geographical errors could be utilized. According to the embodiment of FIG. 15, an optional daylight savings code 1502 indicating daylight savings time information, such as dates associated with a period for applying a daylight savings time pattern or dates for shifting the current time by 1 hour, as will be described in more detail below. While specific codes are shown in FIGS. 14 and 15, it should be understood that additional fields could be implemented.

Turning now to FIG. 16, a table shows timing pattern numbers and associated timing characterization data and categories according to an embodiment of the present invention. A significant benefit of the various embodiments of the timers and methods of implementing a timer is that on and off times for implementing a timer are easily selected without having to enter the on and off times. Rather, a timing pattern designated by a timing pattern code can be easily be selected by a user rather than having a user enter the on and off times for the timer. As will be described in more detail below, the timing patterns can be categorized according to a number of broad categories, such as fixed timing patterns, DST timing patterns, seasonal timing patterns, and astronomic timing patterns, for example, to make it easier to select a desired timing pattern. The timing pattern codes can also be arranged such that similar timing patterns can have similar numbers, and can be arranged in a tree format such that numbers having the same most significant bit will have the same broad category. Timing patterns associated with timing pattern codes having the same second most significant bit may also have a common on or off time, for example.

Referring specifically to FIG. 16, timing patterns are shown for fixed timing patterns, DST timing patterns, seasonal timing patterns, and astronomic timing patterns, where the fixed timing patterns having timing pattern codes between 1 and 1xx, DST timing patterns having timing pattern codes between 2 and 2xx, seasonal timing patterns having timing pattern codes between 3 and 3xx, and astronomic timing patterns having timing pattern codes between 4 and 4xx. The fixed time year-round timing patterns as shown have an on time and an off time, where timing pattern codes associated with timing patterns having the same on time have the same first two digits. For example, timing patterns having an on time of 4:00 PM will have a timing pattern code starting with 11X, while timing patterns having an on time of 5:00 PM will have a timing pattern code starting with 12X. The first timing pattern code of any of the any of the groups (i.e. the timing pattern code could be the default timing pattern code for dedicated timing pattern selection buttons as will be described in more detail below.

The second and third timing pattern categories have different timing patterns for different times of the year. In particular, the DST category has two timing patterns, one for standard time and one for daylight savings times, where the different timing pattern codes represent various combinations of on and off times for both of the standard time and daylight savings time. Similarly, the seasonal category has different on and off times for each of the four seasons.

Finally, the astronomic category of timing patterns including timing patterns based upon known dusk and dawn times. While dusk and dawn times are helpful in setting on and off times for a timer because they are close to the times when it becomes dark and light, the use of the known dusk and dawn times often leads to the timer being on at times when a user may not want the timer on. For example, during winter, lights may come on before 4:00 PM, which may be much earlier than desired. Similarly, lights may be on later than desired at dawn. During summer, lights may be on later than desired, which may be after 7:30. Therefore a user may want to use an offset. As will be described in more detail below, a certain time period delay for tuning on the timer may be desired with on times and a certain time period for turning lights off early may be desired with off times. Further, a user may desire the use of astronomic dusk times (with or without an offset) and the use of a fixed timer for turning the lights off at some time after midnight, for example. It should be understood that astronomic dusk and dawn times could be used with timing patterns in the DST and seasonal categories, or could be limited to the astronomic categories for simplicity. It should also be noted that while even hour times are shown, on and off times based upon half hours or quarter hours could be provided.

In order to implement astronomic times, it is necessary to consider both locations and the time of year. While it may be possible to store astronomic data any level of granularity of location and time, average astronomic dusk and dawn data could be stored based upon a particular region and a particular time period as will be described in reference to FIG. 18. In order to store average astronomic dusk and dawn data, it is necessary to identify a location where the timer will be used, and assign that location to a reasonable number of regions for which astronomic timing data is stored. By way of example in FIG. 17, the 12 regions designated in FIG. 13 could be associated with zipcodes. Accordingly, when a user enters a zip code, data associated with the region having the zip code would be used when implementing a selected timing pattern for the timer. By way of example, the data could be based upon a central location of the region, or an average of the different dusk and dawn times of the region. Alternatively, the average dusk and dawn times could be skewed toward more populated areas of the regions. Not only would average dusk and dawn times for the location be used based upon the zip code, but the correct time in the various time zones based upon the Greenwich Mean Time (GMT) would also be used. Alternatively, three digit telephone area codes could be used.

As shown in FIG. 18, these average dusk and dawn times are not only based upon location, but also based upon time of year. While daily dusk and dawn times could be used, it would be more efficient to use average dusk and dawn times for given time periods, and particularly time periods associated with time periods for implementing timing patterns, as described in reference to FIGS. 51 and 52. Accordingly, for each region, an average dusk time and average dawn time for different timer periods during which a particular on time or off time would be applied, shown by way of example in FIG. 8 to include a full year, portions of a year or individual days.

Additional data which could be used in implementing a timer is DST data and corresponding DST codes. In addition to dates at which times are moved back during the fall or moved back during the spring in areas having daylight savings times (where these dates have changed over time and may change in the future), dates for applying a timing pattern for a period having shorter daylight, called a daylight savings time period. While the daylight savings time period could correspond to the times for moving the timer forward and back, a user may like to select a period for applying a daylight savings time timing pattern during a period which is different than the period between moving the clock back and returning the clock to the standard time. Accordingly, a table could be stored which has different daylight savings time data including a DST time period for applying different timing patterns and dates for changing the clock. Each of a plurality of combinations is stored with a corresponding DST code in the table. When the DST code is entered during programming of the timer, on and off times associated with a selected timing pattern will be applied subject to dates and times associated with daylight savings time data associated with the DST code.

It should be noted each of the tables 16-19 are stored in a memory of the timer, such as memory 1006 or a cache memory of the timer of FIG. 10. The data is preferably stored at the time of manufacture (or at some point before the timer is packaged) and provided to the end user with the timing patterns selectable by a timing pattern code already stored in the memory. Further, data in the tables could be updated using a portable memory device, such as a USB drive, by way of the connector 702.

Turning now to FIG. 20, a flow diagram shows the operation of the 5-key user interface of FIGS. 5 and 7 according to an embodiment of the present invention. While the keypad of FIG. 2 provides an easy way of entering data necessary to implement a timer having pre-stored timing patterns, other user interfaces could be used which take advantage of the pre-stored timing patterns associated with corresponding timing pattern codes. For example, “navigation” keys which enable a user move through a menu can be implemented to enable a user to select a timing pattern code or any other data necessary for implementing a timer as set forth above. Unlike conventional timer user interfaces, the 5 key navigation user interface of FIG. 20 is not only intuitive, but overcomes many of the problems associated with conventional user interfaces by not only showing a current programming category and a current data value for the current programming category, but also previous and following programming categories and previous and following data values which could be selected for the current programming category. That is, as will be described in more detail in reference to FIGS. 21-43, the arrangement of programming categories and corresponding data values will enable easy navigation through the user interface by indicating where a user is within the menu.

Referring specifically to FIG. 20, the programming categories 2002 and corresponding data values 2003 could be selected by the 5 key user interface which includes a select key 2004 which could be used to select data associated with a given programming category. In summary, the select key 2004 will enable a user to enter the menu for programming (such as by depressing the key for a predetermined period (e.g. 2 seconds), the left key 2006 will allow moving left along the programming categories, and the right key 2008 will enable moving right along the programming categories. An up key 2010 will enable a user to move up within a column for a current programming category, while a down key 2012 will enable moving down within the current programming category. By way of example, when the display is in an operational mode and shows operational values (such as the operational values shown in FIGS. 3-5), the first programming mode (i.e. the hour programming mode 2104) will be shown on the display when the select key 2004 is selected. If the user desires to enter a certain time, the up and down keys can be used to move to a desired data value representing the desired hour, and have that data value selected by using the select key. When a data value is selected for a given programming category, the user interface preferably then automatically moves to the following programming category. A key pad sequence (such as the selection of the select key three times or merely holding the select key for a predetermined period of time (e.g. 2 seconds)) can then be entered at any time to leave the programming mode of the timer.

The programming categories include the following: the hour mode 2014 (having 24 data values from 12 AM to 11 PM), the minute mode 2016 (having 60 data values from 0 to 59 minutes), the month mode 2018 (having 12 data values from JAN to DEC), the day mode 2020 (having 31 data values from 1 to 31), the year mode 2022 (having 10 data values for each of the tens digit of the year from 0x to 9x), the year mode 2024 (having 10 data values from 0 to 9 for the one's digit), the region mode 2026 (having 12 data values for each of the regions shown in FIG. 13), the timing pattern mode 2028 (having a predetermined number of timing pattern codes associated with a corresponding number of pre-stored timing patterns), the DST mode 2030 (having the number of data values associated with different DST data values, such as the data associated with the DST codes of FIG. 19), the security mode 2032 (having the number of available security codes, such as 100 codes for a two bit security code or 1000 codes for a 3 bit security code), and optionally an “exit” programming option which will be described in more detail in reference to the programming example of FIGS. 21-43. While a user can depress and hold the select key for a predetermined period of timer for example to leave the programming mode, the exit option can also be provided to enable a user to leave the programming mode. In either case, a new data that has been selected will be stored and used by the processor of the timer to implement a timing pattern.

FIGS. 21-43 shows a series of stages of programming a timer using the 5-key user interface of FIGS. 5 and 7. While displays may be desirable for some users (because they want to see what data is being entered to program the timer), conventional timers having displays are not only difficult to navigate through a menu for programming the timer (and understand where the user is in the menu), but also are difficult to see the data which is entered in a certain field of a conventional timer because the display is so small. The displays of FIGS. 21-43 show the steps of programming a timer to enable operation of the timer according to a pre-stored timing pattern from the initial, un-programmed state of the timer of FIG. 21 to the final programmed state of the timer of FIG. 43. As shown in FIG. 21, various fields which provide information in the normal operating state are shown. The programming mode can be entered when the select key of the 5-key user interface is selected (or some other key sequence such as the select key being selected 3 times, or the select key being depressed for a predetermined period, such as two seconds).

One unique feature of the user interface described in FIGS. 21-43 is that a current selection option (either programming categories or data values) is not only shown, but a “previous” and “next” programming category and data value is also shown. In order to further make the timer easier to program and overcome a significant problem of conventional timers with displays which are difficult to read, the current programming category and data value is larger than the “previous” and “next” programming category and data value. Making the current programming category and data value larger makes it easier to read the programming category and data value while still making it easy to navigate the menu by providing previous and next values.

After a key or key sequence is entered on 5-key user interface to enter the programming mode, an initial programming state is entered as shown in FIG. 22. While the initial states for data values in FIGS. 23-42 are shown as the top values of the available data values for a programming mode, the initial states could be some other value, such as a value near the middle of the available data values, or a commonly selected data value. The sequence of FIGS. 21-42 are intended to show the programming of a timer having the following data: a current timer of 10:24 PM and a current data of Oct. 9, 2013, where the timer is operated in the North Central (NC) region having a timing pattern 13, a DST code 903 and an optional security code 013. As will be described in more detail below, a security code could be used if a user could reprogram the timer using a wireless connection to prevent a hacker from changing the operation of the timer (from outside of a building for example).

As shown in FIG. 22, the initial programming state includes the Hour programming mode, and a initial data value of 1 AM. A user could then use the up and down keys to select the desired time. As shown in FIG. 23, the user had moved down one data value to 2 AM, and then down to the desired data value of 10 PM as shown in FIG. 24. When the user reaches the desired data value, the user can select the value using the select key, in which case the display would then display the next programming category, which happens to be the minute programming category. Alternatively, rather than automatically changing, a user could be required to move to the next programming category by selecting the right arrow key. As shown in FIG. 25, the initial state of the minute programming mode has a “1” in the data value display portion. The up and down keys can then be used to move to the desired “24” minute data value as shown in FIG. 26, where the month programming category would then be displayed as shown in FIG. 27 in response to the selection of the data in the minute programming mode. After the desired month of October is reached in FIG. 29, the programming mode is move to the day programming mode as shown in FIG. 29, where the desired 24th day is selected as shown in FIG. 30. As shown in each of the displays, a previous programming category is shown above a current programming category, and a next programming category is shown below the current programming category. Similarly, a previous data value of the current programming category is shown above the current data value, and a next data value is shown below the current data value. For example, in selecting the month as shown in FIG. 27, the previous programming category “minute” in the programming category side of the display is above the current programming category “month,” while the next programming category “day” is shown below the current programming category. Similarly, in the data value side of the display, the month of December is above the current data value of January, while the month of February is below the current value. Providing categories and values above and below current categories, a user can more easily navigate through the menu. Also, by providing the current category/value in a larger size, it is easy to read the category/value.

Selecting a desired year can present more of a problem because of the number of available years (e.g. 100 data values from 2000-2099). While a single year selection mode can be implemented in the same way as selecting 1 of 31 days of a month as described above, the year programming mode can be divided into two operations, enabling the selection of a decade in one step and enabling the selection of a year in another step. As shown in FIG. 31, it should be noted that the initial state is shown with a year “200?”, where the “zeros” decade is provided. The user can then move down one data value to the “tens” decade as shown in FIG. 32, which, when selected, will lead to the menu option as shown in FIG. 33 enabling the selection of the year for the tens decade. Therefore, the up and down keys are used to select 2013 as shown in FIG. 34.

Other data for implementing the timer can then be entered. In particular, the region in which the timer is implemented can be selected by going from an initial region option NE as shown in FIG. 35 to desired timing region option of NC as shown in FIG. 36. The desired timing pattern can then be selected, where an initial timing program 1 shown in FIG. 37 can be changed to the desired timing program 13, as shown in FIG. 38. The desired daylight savings time code can then be selected, where an initial daylight savings time code 900 shown in FIG. 39 can be changed to the desired daylight savings time code 903, as shown in FIG. 40. Finally, a desired security code can then be selected, where an initial security code of 000 shown in FIG. 41 can be changed to the desired security code of 013, as shown in FIG. 42. After all of the data is entered, and the exit option is selected, the display of the timer returns to the operating mode, where the display shows some or all of the data (other than a value of a security code which could also be shown) entered during programming. Further, a “key” or “lock” icon could be shown on the display to indicate that a security code has been programmed.

While it is assumed that no data was programmed initially, it should be noted that, if the timer is already programmed and just some data needs to be reprogrammed, the left and right keys can be used to move within the menu to reach a desired programming category to change the data for that category, at which time the select key can be used to select the data, leave the programming mode, and return to the display for the normal operational mode. By way of example, if a timer is already programmed and a user desires to change the timing pattern (by changing the selected timing pattern code), a user would enter the programming mode and use the left and right keys to move along the programming modes until the timing pattern programming mode is reached. The up and down the available data values until the desired timing pattern code is reached. The data value be selected by using select key, at which time the programming category would move to the next programming category. If no other data values need to be changed, a user could move along the programming categories to the “exit” option to return to normal operation or hold the select key for a predetermined period of time. Accordingly, if a timer is already programmed and a user desires to change the timing pattern for example, the user can easily change the timing pattern without having to reprogram anything else.

Turning now to FIG. 44, a memory shows fields and corresponding stored data associated with the programmed timer of FIG. 43. All of the data entered using the numeric keypad or 5-key user interface is stored in memory fields of a memory of the timer, such as memory 1006 for example, and is accessed by the timer to implement a selected timing pattern in operating the timer as described above.

Turning now to FIGS. 45-49, screens of a user interface enabling the wireless programming of a timer are shown according to an embodiment of the present invention. That is, based upon a current time and date, the timer will implement the timing pattern (associated with the selected timing pattern code) by using data of FIGS. 16-19. As shown in FIG. 45, a display 4502 of a wireless device, such as a laptop computer, a tablet computer or a cellular telephone having a touch screen or some other data entry element, shows a data entry screen enabling a user to enter the necessary data, including a timing pattern code associated with a desired timing pattern, for implementing the timer. The display also includes a data entry element 4504, shown here as a touch screen entry portion having an alphabetical entry portion 4506 (such as a “QWERTY” keypad) and a numeric entry portion (having touch screen keys from 0 to 9). Various fields are provided to enter the data stored in the memory of FIG. 44. For example, a field 4509 enables a user to enter a security code. The security code may be concealed as shown to avoid someone seeing the code. A time field 4510 enables someone to enter the time, shown here as a 4 digit military time. However, because a full QWERTY keypad is provided, the time could be entered as 10:24 PM for example. The date is entered in a date field 4512. Although shown in a 6 digit DDMMYY format, it could be spelled out using letters and numbers. The desired region, timing pattern and DST code could be entered in fields 4514, 4516, and 4518, respectively. The user could then exit or opt to enter an advanced options mode.

According to one embodiment, the advanced options mode enables a user to select timing patterns to be implemented with the dedicated buttons for selecting timing patterns as shown in FIG. 6 or 7, or enables entering on and off times to be applied when the timing pattern associated with the dedicated buttons are selected. That is, a screen could have a field for each dedicated button, where a user could enter the timing pattern code in the field which corresponds to the timing pattern which is desired for the field. As shown for example in FIG. 46 which relates to a timing program for a fixed button setting, on and off times which would be applied throughout the year could be entered in data fields, where on and off times for weekdays could be entered in fields 4602 and 4604 respectively, and on and off times for weekends could be entered in fields 4606 and 4608 respectively. “Back” and “Next” selection options enable the user to move through the advanced programming options to finish the programming or exit as desired.

As shown in FIG. 47, on and off times associated with an astronomic mode of operation applied in response to the selection of the “Astro” button can be entered in fields 4702 and 4704, where the entries enable the selection of an offset. As will be described in more detail below in reference to FIG. 50, users may prefer to apply astronomic times with a delay in turning the lights on at dusk, and turning the lights off early at dawn. According to another embodiment, the astronomic timing program associated with a button could include an option of setting the off time to a fixed time. That is, while users may want the on time of the timer to follow the dusk time, they may want the lights to go off at a fixed times (such as 1:00 AM or 6:00 AM for example) rather than be tied to the dawn time.

A screen for programming on and off times for a DST button is shown in FIG. 48. According to the embodiment of FIG. 48, on and off times to be applied during a standard time period can be entered in fields 4802 and 4804, while on and off times to be applied during a daylight savings times period can be entered in fields 4806 and 4808. A similar arrangement is shown in FIG. 49, where settings for 4 “seasonal” timing patterns can be applied rather than settings for two timing patterns as described in reference to FIG. 48. In particular, on and off times to be applied during a spring time period can be entered in fields 4902 and 4904, on and off times to be applied during a summer time period can be entered in fields 4906 and 4908, on and off times to be applied during a fall time period can be entered in fields 4910 and 4912, and on and off times to be applied during a standard time period can be entered in fields 4914 and 4916.

While specific fields are provided for entering data for applying on and off times during the operation of a timer when a dedicated button is selected, it should be understood that other fields could be implemented with the given programming categories as shown, or other programming categories could be implemented. It should be noted that if no data is entered, default timing patterns would be implemented when a dedicated button is selected, where the default timing patterns could be based upon the 1-4 timing pattern codes associated with the four categories of timing patterns shown in FIG. 16.

Charts provided in FIGS. 50-52 show dusk and dawn times throughout the year, average dusk and dawn times for periods, and the benefits of implementing certain on and off times during certain periods. Turning first to FIG. 50, a chart shows dusk and dawn times over a year, and an average time shown by the dashed line. As should be apparent from FIG. 50, considerable energy can be saved by setting on and off times at times other than the average dusk and dawn times. While the charts of FIGS. 51 and 52 provide timing patterns having better granularity and therefore provide a more desirable timing pattern, the chart of FIG. 50 provides perspective as to how much energy can be saved by implementing times other than astronomic dusk and dawn times. As is apparent from FIG. 50, each light controlled by a timer will be off for at least 2 hours longer each day compared to astronomic times by setting the on time for a light at 1 hour after dusk and setting the off time 1 hour before the average dawn.

Turning now to FIG. 51, a chart shows dusk and dawn times over a year and which is divided into two periods including standard time and daylight savings time. As can be seen in FIG. 51, the average dusk and dawn times are very different for the two time periods, and the timer on and off settings with a one hour offset is very different. By establishing the two time periods to apply two different time settings, it can be seen that different on and off times are much closer to the dusk and dawn times, and therefore provide an overall more desirable timing pattern for the year, while still providing savings by having the timer on less. Additional energy reduction can be achieved by moving the off time of the DST period to a fixed time, such as 5:00 AM and still provide a desirable overall timing pattern. As is apparent from FIG. 51, the time period for applying a “daylight savings time” timing pattern is different than the period between the “fall back” date for turning back the clock in the fall, and the “spring forward” date for returning the clock to normal time during the spring.

The embodiment of FIG. 52 shows 4 timing patterns associated with the 4 seasons. As can be seen, the average times for dusk and dawn during those periods are different, and selected times relate more closely to the average times, and therefore provide a better overall timing pattern. While DST and seasonal periods are shown, it should be understood that other periods could be defined, such as monthly periods. However, a greater number of periods may require additional memory for storing data and may make it more difficult to select a desirable timing pattern by a user. Accordingly, the number of periods selected (which may provide a better timing pattern) may be a tradeoff with additional memory requirements and reduced user-friendliness. One of the benefits of the various embodiments is that they are user friendly. Therefore, the number timing pattern options available to a user must be selected to ensure that the timer is still user friendly to operate while providing enough options to provide desirable timing patterns for a variety of different users.

Turning now to FIG. 53, a flow chart shows a method of generating timing characterization data according to an embodiment of the present invention. A plurality of timing patterns are established at a step 5302. A unique timing pattern code is assigned for each timing pattern of the plurality of timing patterns at a step 5304. The timing patterns and corresponding timing pattern codes are stored in a memory of the timer at a step 5306. Geographic regions where the timers will be used are also defined at a step 5308. Time periods for which average dusk and dawn times may be used defined at a step 5310. Average dusk and dawn timers associated with the time periods and geographic regions are stored in a memory of the timer at a step 5312. DST data related to “spring forward” and “fall back” dates and desired dates for applying a DST timing pattern (if different than “spring forward” and “fall back”) are stored, by region, in a memory of the timer at a step 5314. It is then determined whether an input is received at a user interface of the timer at a step 5316. Data associated with an operational field are stored in a memory of the timer at a step 5318. It is then determined whether a time out been reached or a stored indication received at a step 5320. The timer is operated based upon the data stored in the operational field at a step 5322.

Turning now to FIG. 54, a flow chart shows a method of implementing a timer with a plurality of timing patterns according to an embodiment of the present invention. The timing pattern is cleared if necessary or desired by selecting a first predetermined keypad sequence at a step 5402. The current time is entered followed by a key or keypad sequence to enter the data at a step 5404. The current date is entered followed by the key or keypad sequence to enter the data at a step 5406. A geographic region for the timer is entered followed by the key or keypad sequence to enter the data at a step 5408. A timing pattern code is entered followed by the key or keypad sequence to enter the data at a step 5410. A DST code is optionally entered followed by a key or keypad sequence to enter the data at a step 5412. It is then determined whether the last data is entered or a time-out period expired at a step 5414. All of the data entered is stored at a step 5416. It is then determined whether the user desires to change the timing pattern code at a step 5418. A second predetermined keypad sequence is entered to change the timing pattern code only at a step 5420.

Turning now to FIG. 55, a flow chart shows a method of selecting a stored timing pattern using the keypad of FIGS. 2 and 4 according to an embodiment of the present invention. A select key is pressed to enter the programming mode at a step 5502. It is then determined whether a left or right key is selected to move to a different programming category at a step 5504. The display will show another programming category as it moves horizontally along a plurality of programming categories at a step 5506. It is then determined whether an up or down key is selected to enable selecting an option associated with the current programming category at a step 5508. The display will show another option of a programming category as it moves vertically along options of a current programming category at a step 5510. It is then determined whether the programming mode ended at a step 5512.

Turning now to FIG. 56, a flow chart shows a method of selecting a stored timing pattern using 5 key user interface of FIGS. 5 and 7 according to an embodiment of the present invention. A security code on the timer is optionally set to enable programming the timer using a wireless link at a step 5602. It is then determined whether a wireless device for programming the timer within range of timer at a step 5604. It is then determined whether the correct security code entered on the wireless device at a step 5606. Data entered in fields on the wireless device are downloaded at a step 5608. The data in the timer is stored at a step 5610. The timer is operated based upon the stored data at a step 5610.

It can therefore be appreciated that the new and novel timer and method of implementing a timer has been described. It will be appreciated by those skilled in the art that numerous alternatives and equivalents will be seen to exist which incorporate the disclosed invention. As a result, the invention is not to be limited by the foregoing embodiments, but only by the following claims. 

I claim:
 1. A programmable light timer for implementing a timing pattern, the programmable light timer comprising: a display, wherein a time selected on a user interface is provided on the display; a first programmable button of the plurality of programmable buttons on the user interface; and up and down keys on the user interface, wherein the up and down keys enable selecting an on time of the timing pattern to be implemented when the first programmable button is selected to be used during operation of the programmable light timer.
 2. The programmable light timer of claim 1 further comprising a second programmable button of the plurality of programmable buttons on the user interface, wherein the up and down keys enable selecting an off time of the timing pattern to be implemented when the second programmable button is selected to be used during the operation of programmable light timer.
 3. The programmable light timer of claim 1 wherein the up and down keys enable programming a current time for the programmable light timer.
 4. The programmable light timer of claim 1 further comprising a second programmable button, wherein the second programmable button is a pre-set button, and a predetermined timing pattern is implemented when the second programmable button is selected to be implemented by the programmable light timer.
 5. The programmable light timer of claim 1 further comprising a switch, separate from the first programmable button, enabling changing a state of the programmable light timer.
 6. A programmable light timer for implementing a timing pattern, the programmable light timer comprising: a display; a plurality of user-selectable buttons on a user interface, wherein each user-selectable button is associated with a timing pattern; a first user-selectable button of the plurality of user-selectable buttons on the user interface of the programmable light timer, wherein the first user-selectable button is a pre-set button having a predetermined timing pattern; and a second user-selectable button on the user interface, wherein the second user-selectable button is programmable by a user of the programmable light timer.
 7. The programmable light timer of claim 6 further comprising up and down keys enabling programming an on time of the second user-selectable button.
 8. The programmable light timer of claim 7 wherein the display displays a time selected by the up and down keys.
 9. The programmable light timer of claim 6 further comprising, for each user-selectable button of the plurality of user selectable buttons, a selection indicator indicating whether the user-selectable button has been selected.
 10. The programmable light timer of claim 6 wherein the second user-selectable button is programmable to turn on a light controlled by the programmable light timer at dusk.
 11. The programmable light timer of claim 6 further comprising a third user-selectable button of the plurality of user-selectable buttons on the user interface, wherein the third user-selectable button is a second pre-set button having a second predetermined timing pattern.
 12. The programmable light timer of claim 11 further comprising a fourth user-selectable button on the user interface, wherein the fourth user-selectable button is programmable by a user of the programmable light timer.
 13. The programmable light timer of claim 6 further comprising a switch, separate from the first button and the second button, enabling changing a state of the programmable light timer.
 14. A method for implementing a timing pattern programmable light timer, the method comprising: displaying a time, selected by way of a user interface, on a display; implementing a plurality of buttons on the user interface, wherein each button has a timing pattern; implementing a first button of the plurality of buttons on the user interface, wherein the first button is pre-set button having a predetermined timing pattern; and implementing a second button on the user interface, wherein the second button is programmable by way of the user interface to have a programmable on time.
 15. The method of claim 15 further comprising implementing a third button of the plurality of buttons that is a second pre-set button having a second predetermined timing pattern.
 16. The method of claim 16 further comprising implementing a fourth button of the plurality of buttons that is programmable to have an off time.
 17. The method of claim 15 further comprising implementing up and down keys that enable the selection of an on time or an off time.
 18. The method of claim 15 further comprising implementing selection indicators with the plurality of buttons, wherein each button of the plurality of buttons has a selection indicator that indicates whether the button has been selected.
 19. The method of claim 15 wherein the second button is programmable to have dusk as the programmable on time.
 20. The method of claim 15 further comprising implementing a switch enabling changing a state of the programmable light timer. 